package org.example.wumeng.service;

import org.example.wumeng.pojo.Book;

import java.util.Map;

public interface T_bookService {

    /**
     * 分页查询医书列表
     * @param page 页码
     * @param size 每页大小
     * @param title 书名（模糊查询）
     * @param author 作者（模糊查询）
     * @param category 分类
     * @return 分页结果
     */
    Map<String, Object> getList(Integer page, Integer size, String title, String author, String category);

    /**
     * 根据ID获取医书详情
     * @param id 医书ID
     * @return 医书信息
     */
    Book getById(Long id);

    /**
     * 根据ID获取医书全文内容
     * @param id 医书ID
     * @return 全文内容
     */
    String getFullContentById(Long id);

    /**
     * 创建医书
     * @param book 医书信息
     * @return 创建的医书ID
     */
    Long create(Book book);

    /**
     * 更新医书信息
     * @param id 医书ID
     * @param book 医书信息
     */
    void update(Long id, Book book);

    /**
     * 删除医书
     * @param id 医书ID
     */
    void delete(Long id);

    /**
     * 根据作者统计医书数量
     * @param author 作者
     * @return 医书数量
     */
    Long countByAuthor(String author);

    /**
     * 根据分类统计医书数量
     * @param category 分类
     * @return 医书数量
     */
    Long countByCategory(String category);

    /**
     * 根据分类查询医书
     * @param category 分类
     * @param page 页码
     * @param size 每页大小
     * @return 查询结果
     */
    org.example.wumeng.pojo.Result<java.util.List<Book>> getByCategory(String category, int page, int size);

    /**
     * 获取分类统计
     * @return 分类统计结果
     */
    org.example.wumeng.pojo.Result<java.util.List<java.util.Map<String, Object>>> getCategoryStatistics();
}